package com.xiongxiong.yiqing.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiongxiong.yiqing.pojo.SysUser;
import com.xiongxiong.yiqing.pojo.vo.FindSysUserCondition;
import com.xiongxiong.yiqing.pojo.vo.LoginVO;
import com.xiongxiong.yiqing.pojo.vo.SysUserVO;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 熊熊很酷
 * @since 2022-12-14
 */
public interface SysUserService extends IService<SysUser> {

    /**
     * 用户登入
     * @param sysUserVO
     * @return com.xiongxiong.yiqing.pojo.vo.SysUserVO
     * @author 熊林飞
     * @date: 2022/12/14 14:40
     */
    LoginVO login(SysUserVO sysUserVO);

    /**
     * 用户注册
     * @param sysUserVO vo
     * @return com.xiongxiong.yiqing.pojo.vo.SysUserVO
     * @author 熊林飞
     * @date: 2022/12/14 15:11
     */
    SysUserVO register(SysUserVO sysUserVO);

    /**
     * 分页或帅选条件查询
     * @param pageNub 第几页
     * @param pageSize 每页多大
     * @param findCondition 筛选条件 可不传
     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<java.util.List<com.xiongxiong.yiqing.pojo.SysUser>>
     * @author 熊林飞
     * @date: 2023/2/11 13:41
     */
    Page<SysUser> selectUserListByPage(Integer pageNub, Integer pageSize, FindSysUserCondition findCondition);

    /**
     * 更新用户
     * @param user
     * @return java.lang.Boolean
     * @author 熊林飞
     * @date: 2023/2/11 20:45
     */
    Boolean updateUserById(SysUser user);

    /**
     * 删除通过id
     * @param id 用户id
     * @author 熊林飞
     * @date: 2023/2/11 21:03
     */
    Boolean deleteUserById(Integer id);

    /**
     * 查询通过id
     * @param id 用户id
     * @return com.xiongxiong.yiqing.pojo.SysUser
     * @author 熊林飞
     * @date: 2023/2/11 22:27
     */
    SysUser selectUserById(Integer id);

    /**
     * 修改密码
     * @param id 用户id
     * @param newPassword 新密码
     * @author 熊林飞
     * @date: 2023/2/11 22:35
     */
    Boolean updatePassword(Integer id, String newPassword);
}
